package com.example.backend.common.api;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码
 */
@Getter
@AllArgsConstructor
public enum ResultCode {
    SUCCESS(200, "操作成功"),
    UNAUTHORIZED(401, "未授权"),
    FORBIDDEN(403, "无权限"),
    VALIDATE_FAILED(400, "参数校验失败"),
    FAILED(500, "操作失败"),
    
    /* 业务错误码 */
    USER_NOT_FOUND(1001, "用户不存在"),
    USERNAME_EXISTS(1002, "用户名已存在"),
    PASSWORD_ERROR(1003, "密码错误"),
    
    /* 注册相关错误码 */
    REGISTER_FAIL(1010, "注册失败"),
    EMAIL_EXISTS(1012, "邮箱已被使用"),
    INVALID_PASSWORD(1013, "密码格式不正确"),
    PASSWORD_NOT_MATCH(1014, "两次密码不一致"),
    INVALID_EMAIL(1015, "邮箱格式不正确"),
    INVALID_PHONE(1016, "手机号格式不正确"),
    INVALID_TOKEN(10017, "Token无效"),
    
    /* 密码相关错误码 */
    PASSWORD_CONFIRM_ERROR(1020, "两次输入的密码不一致"),
    OLD_PASSWORD_ERROR(1021, "原密码不正确"),
    
    /**
     * 角色不存在
     */
    ROLE_NOT_FOUND(50001, "角色不存在"),
    
    /**
     * 角色编码已存在
     */
    ROLE_CODE_EXISTS(50002, "角色编码已存在"),
    
    /**
     * 权限不存在
     */
    PERMISSION_NOT_FOUND(51001, "权限不存在"),
    
    /**
     * 权限标识已存在
     */
    PERMISSION_CODE_EXISTS(51002, "权限标识已存在"),
    
    /**
     * 存在子权限，无法删除
     */
    PERMISSION_HAS_CHILDREN(51003, "存在子权限，无法删除"),
    
    /* 验证码相关错误码 */
    SEND_CAPTCHA_ERROR(1030, "发送验证码失败"),
    INVALID_CAPTCHA(1031, "验证码无效"),
    CAPTCHA_EXPIRED(1032, "验证码已过期"),
    INVALID_CAPTCHA_TYPE(1033, "验证码类型无效"),
    
    /* 微信相关错误码 */
    WX_LOGIN_ERROR(2001, "微信登录失败"),
    WX_USER_NOT_FOUND(2002, "微信用户不存在"),
    WX_BIND_ERROR(2003, "微信绑定失败"),
    WX_ALREADY_BOUND(2004, "微信账号已绑定其他用户"),
    USER_ALREADY_BOUND(2005, "该用户已绑定其他微信账号");
    
    private final Integer code;
    private final String message;
} 